package mx.uach.compiladores;

/**
 *El modelo que contiene los elementos que conforman la expresión divididos en
 * los elementos que describe el alfabeto y la gramatica.
 * 
 * @author Jesús Manuel García Rico
 * @since 06/03/2015
 * @version 1.0
 */
public class Token {
    
    /**
     * Constructor basico para generar los token´s
     * @param linea posición donde se localiza el lexema.
     * @param token identificador numerico.
     * @param lexema caractér o cadena de caracteres (valor real)
     */

    private Integer Linea;
    private int token;
    private String lexema;

    public Token(Integer Linea, int token, String lexema) {
        this.Linea = Linea;
        this.token = token;
        this.lexema = lexema;
    }

    public Integer getLinea() {
        return Linea;
    }

    public void setLinea(Integer Linea) {
        this.Linea = Linea;
    }

    public int getToken() {
        return token;
    }

    public void setToken(int token) {
        this.token = token;
    }

    public String getLexema() {
        return lexema;
    }

    public void setLexema(String lexema) {
        this.lexema = lexema;
    }
    
    /**
     * Método que genera una cadena con los elementos del token.
     * 
     * @return cadena con el fomato linea --- token --- lexema.
     */
    @Override
    public String toString(){
        return String.format("%s --- %s --- %s",
                this.Linea, this.token, this.lexema);
    }
}
